home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 32
/
Aminet 32 (1999)(Schatztruhe)[!][Aug 1999].iso
/
Aminet
/
comm
/
ums
/
UMS11_9_beta.lha
/
UMS
/
rexx
/
ReadMessage.rexx
< prev
next >
Wrap
OS/2 REXX Batch file
|
1995-11-11
|
4KB
|
154 lines
/* ------------------------------------------------------------------------
:Program. ReadMessage.rexx
:Contents. reads a message from UMS' messagebase
:Author. Kai Bolay [kai]
:Address. Hoffmannstraße 168
:Address. D-71229 Leonberg
:EMail. kai@studbox.uni-stuttgart.de
:Version. $VER: ReadMessage.rexx 2.2 (11.11.95)
:Copyright. Public Domain
:Language. ARexx
:Translator. RexxMast
$Id: ReadMessage.rexx 2.2 1995/11/11 11:55:40 kai Exp $
$Log: ReadMessage.rexx $
# Revision 2.2 1995/11/11 11:55:40 kai
# started RCS. Old history:
# v1.0 [kai] 23-Sep-93
# v1.1 [hG] 16-Jan-94 added arguments parsing,
# added option NoUpdate
# V1.2 [hG] 20-Jan-94 shows user/global status textual
# v1.3 [hG] 23-Jan-94 uses UMSInit.rexx 1.1
# hgRexxSupport.library
# v2.0 [kai] 21-Dec-94 adapted to UMS v11
# v2.1 [kai] 14-Apr-95 beautified and new flags
# v2.2 [kai] 11-Nov-95 adapted to newest standard
#
------------------------------------------------------------------------ */
options results
signal on BREAK_C
signal on BREAK_D
signal on BREAK_E
signal on BREAK_F
signal on HALT
signal on ERROR
signal on IOERR
signal on SYNTAX
/*** Init ***/
call addlib("rexxdossupport.library", 0, -30)
call addlib("ums.library", 0, -210, 11)
call UMSInitConsts()
/*** Arguments ***/
parse SOURCE . " " . " " ProgramName .
ArgsTemplate = "NAME,PASSWORD,NUM/A/N,SERVER/K,NOUPDATE/S"
args.SERVER = ""
args.PASSWORD = ""
parse arg arguments
if strip(arguments) = '?' then do
call writech(STDOUT, ArgsTemplate || ': ')
arguments = readln(STDIN)
end; else nop
if ~ReadArgs(arguments,ArgsTemplate,"args.") then do
say Fault(RC, ProgramName)
exit 10
end; else nop
/*** Login ***/
account = UMSLogin(args.name, args.password, args.server)
if account = 0 then do
say "unable to login."
exit 10
end
/*** Do the magic ***/
drop msg. /* _IMPORTANT_ */
if UMSReadMsgAll(account, args.num, msg., args.NoUpdate) then do
say "Message #" || args.num
do field = 0 to UMSNUMFIELDS
if symbol("msg." || field) = "VAR" then do
say "Field #" || field || ": '" || msg.field || "'"
end
end
if UMSReadMsgInfo(account, args.num, msg.) then do
say "HDRLEN:" msg.HDRLEN
say "TXTLEN:" msg.TXTLEN
say "DATE:" msg.DATE
say "CDATE:" msg.CDATE
say "UP:" msg.UP
say "DN:" msg.DN
say "LT:" msg.LT
say "RT:" msg.RT
say "GLOBALSTAT:" FlagToStat(msg.GLOBALSTAT,"Deleted","Expired",
"Exported","Orphan","Link","HardLink","Parked","HasFile")
say "USERSTAT:" FlagToStat(msg.USERSTAT,"0","1","2","3","Archive",
"Junk","PostPoned","Selected","Old","WriteAccess",
"ReadAccess","ViewAccess","Owner","13","14","Filtered")
say "LOGINSTAT:" c2x(msg.LOGINSTAT)
say "SOFTLINK:" msg.SOFTLINK
say "HARDLINK:" msg.HARDLINK
end; else do
call CheckErr
RC = 20; call LOGOUT
end
end; else do
call CheckErr
RC = 20; call LOGOUT
end
/*** Final cleanup ***/
BREAK_C:
BREAK_D:
BREAK_E:
BREAK_F:
RC = 0
ERROR:
HALT:
IOERR:
SYNTAX:
IF RC ~= 0 THEN DO
SAY "Error: " rc errortext(rc) "Line" sigl
RC = 20
END
/*** Logout ***/
LOGOUT:
if account ~= 0 then do
call UMSLogout(account)
account = 0
end
exit RC
/*** Support ***/
CheckErr: procedure expose account
err = UMSErrNum(account)
if err ~= 0 then do
say "UMS Error #" || err || ": " || UMSErrTxt(account)
end
return
FlagToStat: PROCEDURE
flags = arg(1)
status = '';
do i = 0 to arg()
if BITTST(flags,i) then status = status arg(i+1)
end;
return status